package com.xjy.system.domain.bo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import javax.validation.constraints.*;


import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 资金账户变更明细信息添加对象 sys_fundaccountdetail
 *
 * @author xjy
 * @date 2022-03-10
 */
@Data
@ApiModel("资金账户变更明细信息添加对象")
public class SysFundaccountdetailAddBo {




	@ApiModelProperty("关联项目")
	@NotNull(message = "关联项目不能为空")
	private Long projId;

	@ApiModelProperty("关联合同，可能为空")
	private Long contractId;

	@ApiModelProperty("项目名称")
	private String projName;

	@ApiModelProperty("关联合同结算项目，可能为空")
	private Long settleProj;

	@ApiModelProperty("合同名称")
	private String contractName;

	@ApiModelProperty("关联预算科目，可能为空")
	private Long subjectId;

	@ApiModelProperty("账户ID")
	@NotNull(message = "账户ID不能为空")
	private Long accId;

	@ApiModelProperty("资金变更流水号")
	@NotNull(message = "资金变更流水号不能为空")
	private String transactionId;

	@ApiModelProperty("结算项目名称")
	private String settleProjName;

	@ApiModelProperty("交易发出方")
	@NotBlank(message = "交易发出方不能为空")
	private String sender;

	@ApiModelProperty("交易发出方ID")
	@NotNull(message = "交易发出方ID不能为空")
	private Long senderId;

	@ApiModelProperty("科目名称")
	private String subjectName;

	@ApiModelProperty("交易接收方")
	@NotBlank(message = "交易接收方不能为空")
	private String receive;

	@ApiModelProperty("账户名称")
	private String accountName;

	@ApiModelProperty("交易接收方ID")
	@NotNull(message = "交易接收方ID不能为空")
	private Long receiveId;

	@ApiModelProperty("账户开户行")
	private String accountBank;

	@ApiModelProperty("经办人")
	@NotBlank(message = "经办人不能为空")
	private String manager;

	@ApiModelProperty("账户号码")
	private String accountNo;

	@ApiModelProperty("经办人ID")
	@NotNull(message = "经办人ID不能为空")
	private Long managerId;

	@ApiModelProperty("0：收入(+)，1：支出(-)")
	@NotNull(message = "0：收入(+)，1：支出(-)不能为空")
	private Long category;

	@ApiModelProperty("账户交易日期")
	@NotNull(message = "账户交易日期不能为空")
	private Date transactionDate;

	@ApiModelProperty("账户交易前金额")
	private BigDecimal beiginbalance;

	@ApiModelProperty("账户交易发生金额")
	private BigDecimal amount;

	@ApiModelProperty("账户交易后余额")
	private BigDecimal endbalance;

	@ApiModelProperty("备注")
	private String remarks;

	@ApiModelProperty("更新时间")
	private Date updateTime;

	@ApiModelProperty("交易类型：0：现金，1：银行")
	private Integer transactionType;

	@ApiModelProperty("交易类型 0：收取押金、1：支付押金、2：预付账款、3：个人借款、4：支付报销、5：冲销借款，6：冲销预付，7：账户收款、8：其它")
	@NotNull(message = "交易类型 0：收取押金、1：支付押金、2：预付账款、3：个人借款、4：支付报销、5：冲销借款，6：冲销预付，7：账户收款、8：其它不能为空")
	private Long transactionCategory;

	@ApiModelProperty("审核状态 0：未审核；1：审核（默认）")
	@NotNull(message = "审核状态 0：未审核；1：审核（默认）不能为空")
	private Boolean auditStatus;

}
